package common

import (
	"ws-demo-go/pkg/serializer"
)

/*
本文件用于桥接 pkg/serializer 包下的序列化接口，那个包的代码是通用的，本包的代码是本项目独属的
*/

// Encode 把 Message 对象编码成 字节流数据
func Encode(msg *Message) ([]byte, error) {
	s, _ := serializer.GlobalFactory.GetSerializer(DefaultSerialType)
	return s.Serialize(msg)
}

// Decode 把 字节流数据 解码成 Message 对象
func Decode(data []byte, message *Message) error {
	// 先使用默认序列化器解析
	s, _ := serializer.GlobalFactory.GetSerializer(DefaultSerialType)
	if err := s.Deserialize(data, &message); err != nil {
		return err
	}
	return nil
}
